import os
import glob

def remove_matching_files_from_todo():
    """
    从todo文件夹中删除与比比好可爱_hd文件夹中_ai文件对应的原始文件
    """
    # 源文件夹路径（包含_ai文件）
    source_folder = r"E:\BaiduSyncdisk\换衣\比比好可爱_hd"
    
    # 目标文件夹路径（需要删除文件的文件夹）
    todo_folder = "todo"
    
    # 检查源文件夹是否存在
    if not os.path.exists(source_folder):
        print(f"错误: 源文件夹不存在: {source_folder}")
        return
    
    # 检查todo文件夹是否存在
    if not os.path.exists(todo_folder):
        print(f"错误: todo文件夹不存在: {todo_folder}")
        return
    
    # 获取源文件夹中所有以_ai结尾的文件
    ai_files_pattern = os.path.join(source_folder, "*_ai.*")
    ai_files = glob.glob(ai_files_pattern)
    
    if not ai_files:
        print(f"在 {source_folder} 中没有找到以'_ai'结尾的文件")
        return
    
    print(f"找到 {len(ai_files)} 个以'_ai'结尾的文件")
    
    deleted_count = 0
    not_found_count = 0
    
    for ai_file in ai_files:
        # 获取文件名（不包含路径）
        ai_filename = os.path.basename(ai_file)
        
        # 去掉_ai后缀，得到原始文件名
        # 例如: "比比好可爱_2024-09-04_19.50.08_金色的夜晚_女研究生勇闯时尚圈_11_ai.png" 
        # 变成: "比比好可爱_2024-09-04_19.50.08_金色的夜晚_女研究生勇闯时尚圈_11.png"
        if "_ai." in ai_filename:
            original_filename = ai_filename.replace("_ai.", ".")
        else:
            print(f"警告: 文件 {ai_filename} 的格式不符合预期")
            continue
        
        # 检查todo文件夹中是否存在对应的原始文件
        todo_file_path = os.path.join(todo_folder, original_filename)
        
        if os.path.exists(todo_file_path):
            try:
                os.remove(todo_file_path)
                print(f"✓ 已删除: {original_filename}")
                deleted_count += 1
            except Exception as e:
                print(f"✗ 删除失败: {original_filename} - {e}")
        else:
            # 不输出未找到的文件，减少输出量
            not_found_count += 1
    
    print(f"\n处理完成!")
    print(f"成功删除: {deleted_count} 个文件")
    print(f"未找到对应文件: {not_found_count} 个")
    print(f"总共处理: {len(ai_files)} 个_ai文件")

if __name__ == "__main__":
    print("开始处理文件...")
    print("=" * 60)
    remove_matching_files_from_todo()
